\(Shape xs) (List ys) -> equalLength xs ys == (length xs == length ys)but equalLength is more efficient.
>>> lessOrEqualLength "" undefined Truewhereas compareLength [] undefined <= EQ = undefined.
disjoint [1,2,3] [4,5] == True disjoint [1,2,3] [4,1] == False
startswith "He" "Hello" -> True
endswith "lo" "Hello" -> True
contains "Haskell" "I really like Haskell." -> True contains "Haskell" "OCaml is great." -> False
>>> "ld!" `isSuffixOf` "Hello World!" True
>>> "World" `isSuffixOf` "Hello World!" False
>>> "Hello" `isPrefixOf` "Hello World!" True
>>> "Hello" `isPrefixOf` "Wello Horld!" False
>>> isSubsequenceOf "GHC" "The Glorious Haskell Compiler" True >>> isSubsequenceOf ['a','d'..'z'] ['a'..'z'] True >>> isSubsequenceOf [1..10] [10,9..0] False